<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

    <ui:composition template="layout.xhtml">

        <ui:define name="title">
            Transferir Registro de Imóveis
        </ui:define>        

        <ui:define name="content">

            <h:form id="transferenciaImovelForm">

                <p:messages id="fazerTransferenciaMessages" autoUpdate="true" />

                <div class="actions">
                    <div id="buttons">
                        <p:button value="Editar" outcome="criarImovel.xhtml"
                                  rendered="#{ managerPesquisarImovel.imovelVisualizar.id != null }"
                                  icon="ui-icon-pencil"
                                  styleClass="ui-priority-primary">
                            <f:param value="#{ managerPesquisarImovel.imovelVisualizar.id }" name="imovelId"/>
                        </p:button>

                        <p:splitButton value="Ações" process="@none" icon="ui-icon-gear" styleClass="acoes">
                            <f:param value="#{ managerPesquisarImovel.imovelVisualizar.id }" name="imovelId"/>

                            <p:separator />

                            <p:menuitem value="Averbar" icon="ui-icon-clipboard" outcome="fazerAverbacao.xhtml" >  
                                <f:param name="imovelId" value="#{ managerPesquisarImovel.imovelVisualizar.id }"/>
                            </p:menuitem>

                            <p:menuitem value="Registrar" icon="ui-icon-plus" outcome="fazerRegistro.xhtml" >
                                <f:param name="imovelId" value="#{ managerPesquisarImovel.imovelVisualizar.id }"/>
                            </p:menuitem>                            

                            <p:menuitem value="Transferir" icon="ui-icon-refresh" outcome="fazerTransferencia.xhtml" >  
                                <f:param name="imovelId" value="#{ managerPesquisarImovel.imovelVisualizar.id }"/>
                            </p:menuitem>

                            <p:menuitem value="Emitir Matrícula" title="Emitir Matrícula" icon="ui-icon-clipboard" 
                                        ajax="false" actionListener="#{ managerPesquisarImovel.emitirMatricula() }">
                            </p:menuitem>

                            <p:menuitem value="Excluir" title="Excluir" oncomplete="dialogApagar.show()" icon="ui-icon-trash">
                                <f:setPropertyActionListener target="#{ managerPesquisarImovel.imovelDeletar }" value="#{ imovel }" />
                            </p:menuitem>

                        </p:splitButton>                     

                    </div>
                </div>

                <p:fieldset legend="Transmitentes atuais">

                    <p:dataTable value="#{ managerTransferenciaImovel.transmitentesAtuais }" var="transmitente"
                                 rows="5" paginator="true" paginatorPosition="bottom" emptyMessage="Nenhum transmitente adicionado">

                        <p:column headerText="Nome" width="70%">
                            <h:outputText value="#{ transmitente.nome }" />
                        </p:column>
                        <p:column headerText="Documento" width="30%">
                            <h:outputText value="#{ transmitente.tipoPessoa eq 'FISICA' ? managerTransferenciaImovel.adicionarMascaraCPF(transmitente.cpf) : managerTransferenciaImovel.adicionarMascaraCNPJ(transmitente.cnpj) }" />
                        </p:column>                      

                    </p:dataTable>

                </p:fieldset>

                <p:fieldset legend="Adquirentes atuais">

                    <p:dataTable value="#{ managerTransferenciaImovel.adquirentesAtuais }" var="adquirente"
                                 rows="5" paginator="true" paginatorPosition="bottom" emptyMessage="Nenhum adquirente adicionado">

                        <p:column headerText="Nome" width="70%">
                            <h:outputText value="#{ adquirente.nome }" />
                        </p:column>
                        <p:column headerText="Documento" width="30%">
                            <h:outputText value="#{ adquirente.tipoPessoa eq 'FISICA' ? managerTransferenciaImovel.adicionarMascaraCPF(adquirente.cpf) : managerTransferenciaImovel.adicionarMascaraCNPJ(adquirente.cnpj) }" />
                        </p:column>                         

                    </p:dataTable>

                </p:fieldset>

                <p:fieldset legend="Título">

                    <div class="row">
                        <div class="column2">
                            <p:outputLabel value="Número" for="numeroInputText" />
                        </div>
                        <div class="column3">
                            <p:inputText id="numeroInputText" value="#{ managerTransferenciaImovel.registro.numero }"
                                         readonly="true"/>
                        </div>                        
                    </div>                    

                    <div class="row">
                        <div class="column2">
                            <p:outputLabel value="Data do Registro" for="dataCadastroCalendar" />
                        </div>
                        <div class="column3">
                            <p:calendar id="dataCadastroCalendar" value="#{ managerTransferenciaImovel.registro.dataRegistro }"
                                        showOn="button" pattern="dd/MM/yyyy" locale="pt" navigator="true"
                                        required="true" requiredMessage="Data do Registro é obrigatório" />
                        </div>

                        <div class="column2">
                            <p:outputLabel value="Título" for="tituloAutoComplete" />
                        </div>
                        <div class="column3">
                            <p:autoComplete id="tituloAutoComplete" value="#{ managerTransferenciaImovel.novaTransferencia.titulo }"
                                            forceSelection="true" dropdown="true" var="titulo" itemValue="#{ titulo }" 
                                            itemLabel="#{ titulo.nome }" completeMethod="#{ managerTransferenciaImovel.autocompletarTitulo }"
                                            converter="conversortitulo" minQueryLength="3"
                                            required="true" requiredMessage="Título é obrigatório" />
                        </div>
                    </div>              

                    <div class="row">
                        <div class="column2">
                            <p:outputLabel value="Valor do Imóvel" for="valorSeloInputText" />
                        </div>
                        <div class="column3">
                            <p:inputText id="valorSeloInputText"
                                         value="#{ managerTransferenciaImovel.novaTransferencia.valor }"
                                         onkeypress="jQuery(this).autoNumeric({aSep: '.', aDec: ','} );">
                                <f:convertNumber type="number" locale="pt-BR" />
                            </p:inputText>
                        </div>

                        <div class="column2">
                            <p:outputLabel value="Moeda" for="tipoMoedaSelectOneMenu" />
                        </div>
                        <div class="column3">
                            <p:selectOneMenu id="tipoMoedaSelectOneMenu" value="#{ managerTransferenciaImovel.novaTransferencia.tipoMoeda  }">
                                <f:selectItems value="#{ enums.tiposMoeda() }" />
                            </p:selectOneMenu>
                        </div>                        
                    </div>

                    <div class="row">
                        <div class="column2">
                            <p:outputLabel value="Forma do Título" for="formaTituloInputTextarea" />
                        </div>
                        <div class="column8">
                            <p:inputTextarea id="formaTituloInputTextarea" value="#{ managerTransferenciaImovel.novaTransferencia.formaTitulo }"
                                             required="true" requiredMessage="Forma do Título é obrigatório"/>
                        </div>
                    </div>

                </p:fieldset>

                <p:fieldset id="adquirenteFieldset" legend="Novos adquirentes">

                    <div class="command">
                        <p:commandButton styleClass="adicionar" onclick="dialogAdquirente.show();" process="@this" update="@this" immediate="true" value="Adicionar" icon="ui-icon-plus" />
                    </div>

                    <p:dataTable id="adquirentedataTable" value="#{ managerTransferenciaImovel.adquirentesSelecionados }" var="adquirente"
                                 rows="5" paginator="true" paginatorPosition="bottom" emptyMessage="Nenhum adquirente adicionado">

                        <p:column headerText="Opções" width="5%">
                            <div class="options1">
                                <p:commandButton icon="ui-icon-trash" actionListener="#{ managerTransferenciaImovel.removerAdquirente(adquirente) }"
                                                 process="@this" update=":transferenciaImovelForm:adquirenteFieldset" />
                            </div>
                        </p:column>
                        <p:column headerText="Nome">
                            <h:outputText value="#{ adquirente.nome }" />
                        </p:column>                            

                    </p:dataTable>

                </p:fieldset>

                <div class="command">
                    <p:commandButton actionListener="#{ managerTransferenciaImovel.transferir() }"
                                     styleClass="ui-priority-primary"
                                     oncomplete="widthFix();"  onsuccess="goY(0);"
                                     value="Transferir" update="@form" icon="ui-icon-disk" />
                    <p:button value="Voltar" icon="ui-icon-arrowreturn-1-w"
                              href="visualizarImovel.xhtml?imovelId=#{ managerTransferenciaImovel.imovel.id }" />
                </div>

            </h:form>

            <form id="adquirenteForm">

                <p:dialog id="adquirenteDialog" widgetVar="dialogAdquirente" header="Adquirente" dynamic="true"
                          modal="true" appendToBody="false" resizable="false" width="90%" height="450px" draggable="false" closable="false">

                    <p:tabView id="adquirenteTabView" onTabShow="widthFix();">

                        <p:tab id="pesquisarAdquirenteTab" title="Pesquisar Adquirente">

                            <p:fieldset id="adquirentePesquisarFieldset" legend="Selecionar Adquirente">

                                <div class="row selectionBox">
                                    <p:selectOneRadio id="tipoPessoaAdquirenteSelectOneMenu" value="#{ managerTransferenciaImovel.adquirentePesquisar.tipoPessoa }" >
                                        <f:selectItems value="#{ enums.tiposPessoa() }" />   
                                        <p:ajax event="change"
                                                update=":adquirenteTabView:adquirentePesquisarFieldset" listener="#{ managerTransferenciaImovel.limparAdquirente() }" />
                                    </p:selectOneRadio>
                                </div>

                                <f:validateBean disabled="true">
                                    <div class="row">
                                        <div class="column1">
                                            <p:outputLabel value="Nome" for="nomeAdquirenteInputText"  />
                                        </div>
                                        <div class="column5">
                                            <p:inputText id="nomeAdquirenteInputText" value="#{ managerTransferenciaImovel.adquirentePesquisar.nome }" />
                                        </div>

                                        <div class="column1">
                                            <p:outputLabel value="CPF" for="cpfAdquirenteInputMask" 
                                                           rendered="#{ managerTransferenciaImovel.adquirentePesquisar.tipoPessoa eq 'FISICA'}" />
                                        </div>
                                        <div class="column4">
                                            <p:inputMask id="cpfAdquirenteInputMask" value="#{ managerTransferenciaImovel.adquirentePesquisar.cpf }"
                                                         rendered="#{ managerTransferenciaImovel.adquirentePesquisar.tipoPessoa eq 'FISICA'}" mask="999.999.999-99" />
                                        </div>

                                        <div class="column1">
                                            <p:outputLabel value="CNPJ" for="cnpjAdquirenteInputMask"
                                                           rendered="#{ managerTransferenciaImovel.adquirentePesquisar.tipoPessoa eq 'JURIDICA'}" />
                                        </div>
                                        <div class="column4">
                                            <p:inputMask id="cnpjAdquirenteInputMask" value="#{ managerTransferenciaImovel.adquirentePesquisar.cnpj }"
                                                         rendered="#{ managerTransferenciaImovel.adquirentePesquisar.tipoPessoa eq 'JURIDICA'}" mask="99.999.999/9999-99" />
                                        </div>
                                    </div>
                                </f:validateBean>

                                <div class="command">
                                    <p:commandButton actionListener="#{ managerTransferenciaImovel.pesquisarAdquirente() }" value="Pesquisar"
                                                     update=":adquirenteTabView:adquirentePesquisarFieldset" process=":adquirenteTabView:adquirentePesquisarFieldset"
                                                     icon="ui-icon-search" />
                                </div>

                                <p:dataTable id="adquirentesDataTable" var="pessoa" value="#{ managerTransferenciaImovel.adquirentes }" 
                                             rows="5" paginator="true" paginatorPosition="bottom" rowKey="#{ pessoa.id }"
                                             selection="#{ managerTransferenciaImovel.adquirenteSelecionado }" selectionMode="single"
                                             emptyMessage="Nenhum adquirente encontrado">
                                    <f:facet name="header">Clientes</f:facet>
                                    <p:ajax event="rowSelect"  process="@this" update="@this"/>

                                    <p:column headerText="Nome" width="70%">
                                        <h:outputText value="#{ pessoa.nome }" />
                                    </p:column>
                                    <p:column headerText="#{managerTransferenciaImovel.adquirentePesquisar.tipoPessoa eq 'FISICA' ? 'CPF' : 'CNPJ'}" width="30%">
                                        <h:outputText value="#{ pessoa.tipoPessoa eq 'FISICA' ? managerPesquisarPessoa.adicionarMascaraCPF(pessoa.cpf) : managerPesquisarPessoa.adicionarMascaraCNPJ(pessoa.cnpj) }" />
                                    </p:column>
                                </p:dataTable>

                                <div class="command">
                                    <p:commandButton actionListener="#{ managerTransferenciaImovel.selecionarAdquirente() }"
                                                     update=":transferenciaImovelForm:adquirentedataTable, :adquirenteTabView:adquirentePesquisarFieldset"
                                                     process="@this" value="Selecionar" icon="ui-icon-plus" styleClass="ui-priority-primary" />
                                    <p:commandButton value="Cancelar" icon="ui-icon-cancel" onclick="dialogAdquirente.hide()" process="@this"
                                                     update=":adquirenteDialog" actionListener="#{ managerTransferenciaImovel.instanciarAdquirentePesquisar() }" />
                                </div>

                            </p:fieldset>

                        </p:tab>

                        <p:tab id="cadastrarAdquirenteTab" title="Cadastrar">

                            <p:messages id="cadastrarAdquirenteMessages" autoUpdate="true" />

                            <p:fieldset legend="Dados" id="dadosFieldset">

                                <div class="row">
                                    <div class="column2">
                                        <p:outputLabel value="Tipo" for="nomeInputText" />
                                    </div>                        
                                    <div class="column10">
                                        <p:selectOneRadio id="tipoPessoaSelectOneMenu" value="#{ managerTransferenciaImovel.adquirenteCadastrar.tipoPessoa }">
                                            <f:selectItems value="#{ enums.tiposPessoa() }" />
                                            <p:ajax event="change" update="dadosFieldset" oncomplete="widthFix();" />
                                        </p:selectOneRadio>
                                    </div>
                                </div>

                                <p:panel id="pessoaFisicaPanel" styleClass="noborder"
                                         rendered="#{ managerTransferenciaImovel.adquirenteCadastrar.tipoPessoa eq 'FISICA' }">
                                    <div class="row">
                                        <div class="column2">
                                            <p:outputLabel value="Nome" for="nomeInputText" />
                                        </div>
                                        <div class="column10">
                                            <p:inputText id="nomeInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.nome }"
                                                         required="true" requiredMessage="Nome é obrigatório" />
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="column2">
                                            <p:outputLabel value="CPF" for="cpfInputMask" />
                                        </div>
                                        <div class="column3">
                                            <p:inputMask id="cpfInputMask" value="#{ managerTransferenciaImovel.adquirenteCadastrar.cpf  }"
                                                         mask="999.999.999-99" />
                                        </div>                             

                                        <div class="column2">
                                            <p:outputLabel value="RG" for="rgInputText" />
                                        </div>
                                        <div class="column3">
                                            <p:inputText id="rgInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.rg  }" />
                                        </div>   
                                    </div>

                                    <div class="row">
                                        <div class="column2">
                                            <p:outputLabel value="Data de Nascimento" />
                                        </div>
                                        <div class="column3">
                                            <p:calendar id="dataVigorCalendar" value="#{ managerTransferenciaImovel.adquirenteCadastrar.dataNascimento }"
                                                        showOn="button" pattern="dd/MM/yyyy" locale="pt" navigator="true" yearRange="1900:c+10" />
                                        </div>

                                        <div class="column2">
                                            <p:outputLabel value="Estado Civil" for="estadoCivilSelectOneMenu" />
                                        </div>
                                        <div class="column3">
                                            <p:selectOneMenu id="estadoCivilSelectOneMenu" value="#{ managerTransferenciaImovel.adquirenteCadastrar.estadoCivil }">
                                                <f:selectItems value="#{ enums.estadosCivis() }" />
                                            </p:selectOneMenu>
                                        </div>                            
                                    </div>

                                    <div class="row">
                                        <div class="column2">
                                            <p:outputLabel value="Sexo" for="sexoSelectOneRadio" />
                                        </div>
                                        <div class="column3">
                                            <p:selectOneRadio id="sexoSelectOneRadio" value="#{ managerTransferenciaImovel.adquirenteCadastrar.sexo }">
                                                <f:selectItems value="#{ enums.sexos() }" />
                                            </p:selectOneRadio>
                                        </div>

                                        <div class="column2">
                                            <p:outputLabel value="Profissão" for="profissaoInputText" />
                                        </div>
                                        <div class="column3">
                                            <p:inputText id="profissaoInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.profissao  }" />
                                        </div>
                                    </div>

                                </p:panel>

                                <p:panel id="dadosPessoaJuridica" styleClass="noborder"
                                         rendered="#{managerTransferenciaImovel.adquirenteCadastrar.tipoPessoa eq 'JURIDICA'}">
                                    <div class="row">
                                        <div class="column2">
                                            <p:outputLabel value="Nome Fantasia" for="nomeFantasiaInputText" />
                                        </div>
                                        <div class="column10">
                                            <p:inputText id="nomeFantasiaInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.nome }"
                                                         required="true" requiredMessage="Nome Fantasia é obrigatório" />                                
                                        </div>
                                    </div>

                                    <div class="row">    
                                        <div class="column2">
                                            <p:outputLabel value="Razão Social" for="razaoSocialInputText" />
                                        </div>
                                        <div class="column10">
                                            <p:inputText id="razaoSocialInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.razaoSocial }"
                                                         required="true" requiredMessage="Razão é obrigatório" />
                                        </div>
                                    </div>

                                    <div class="row">
                                        <div class="column2">
                                            <p:outputLabel value="CNPJ" for="cnpjInputMask" />
                                        </div>
                                        <div class="column5">
                                            <p:inputMask id="cnpjInputMask" value="#{ managerTransferenciaImovel.adquirenteCadastrar.cnpj  }"
                                                         required="true" requiredMessage="CNPJ é obrigatório" mask="99.999.999/9999-99" />                                
                                        </div>
                                    </div>                        
                                    <div class="row">
                                        <div class="column2">
                                            <p:outputLabel value="Responsável" for="responsavelInputText" />
                                        </div>
                                        <div class="column5">
                                            <p:inputText id="responsavelInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.responsavel  }" />
                                        </div>
                                        <div class="column1">
                                            <p:outputLabel value="Email" for="emailInputText" />
                                        </div>
                                        <div class="column4">
                                            <p:inputText id="emailInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.email  }"/>
                                        </div>
                                    </div>
                                </p:panel>

                            </p:fieldset>

                            <p:fieldset legend="Endereço">

                                <div class="row">
                                    <div class="column2">
                                        <p:outputLabel value="Tipo do endereço" for="tipoEnderecoInputText" />
                                    </div>
                                    <div class="column3">
                                        <p:selectOneMenu id="tipoEnderecoInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.tipo  }">
                                            <f:selectItems value="#{ enums.tiposEndereco() }" />
                                        </p:selectOneMenu>
                                    </div>
                                </div>

                                <div class="row">
                                    <div class="column2">
                                        <p:outputLabel value="Tipo do logradouro" for="tipoLogradouroInputText" />
                                    </div>
                                    <div class="column3">
                                        <p:selectOneMenu id="tipoLogradouroInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.tipoLogradouro  }">
                                            <f:selectItems value="#{ enums.tiposLogradouro() }" />
                                        </p:selectOneMenu>
                                    </div>
                                    <div class="column2">
                                        <p:outputLabel value="Localidade" for="localidadeInputText" />
                                    </div>
                                    <div class="column5">
                                        <p:inputText id="localidadeInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.localidade }"/>
                                    </div>
                                </div>

                                <div class="row">
                                    <div class="column2">
                                        <p:outputLabel value="Número" for="numeroInputText" />
                                    </div>
                                    <div class="column3">
                                        <p:inputText id="numeroInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.numero  }"/>
                                    </div>

                                    <div class="column2">
                                        <p:outputLabel value="Logradouro" for="logradouroInputText" />
                                    </div>
                                    <div class="column5">
                                        <p:inputText id="logradouroInputText" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.logradouro }" />
                                    </div>
                                </div>

                                <div class="row">
                                    <div class="column2">
                                        <p:outputLabel value="Bairro" for="bairroAutoComplete" />
                                    </div>
                                    <div class="column3">
                                        <p:autoComplete id="bairroAutoComplete" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.bairro }"
                                                        forceSelection="true" dropdown="true" var="bairro" itemValue="#{ bairro }" 
                                                        itemLabel="#{ bairro.nome }" completeMethod="#{ managerTransferenciaImovel.autocompletarBairro }"
                                                        disabled="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.cidade == null }"
                                                        converter="conversorbairro" minQueryLength="3" />
                                    </div>

                                    <div class="column2">
                                        <p:outputLabel value="CEP" for="cepInputMask" />
                                    </div>
                                    <div class="column5">
                                        <p:inputMask id="cepInputMask" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.cep  }"
                                                     mask="99.999-999" />
                                    </div>
                                </div>

                                <div class="row">
                                    <div class="column2">
                                        <p:outputLabel value="Cidade" for="cidadeAutoComplete" />
                                    </div>
                                    <div class="column3">
                                        <p:autoComplete id="cidadeAutoComplete" value="#{ managerTransferenciaImovel.adquirenteCadastrar.endereco.cidade }"
                                                        forceSelection="true" dropdown="true" var="cidade" itemValue="#{ cidade }" 
                                                        itemLabel="#{ cidade.nome }" completeMethod="#{ managerCriarPessoa.autocompletarCidade }"
                                                        converter="conversorcidade" minQueryLength="3" required="true" requiredMessage="Cidade é obrigatório">
                                            <p:ajax event="itemSelect" oncomplete="widthFix();" update="@this, :adquirenteTabView:bairroAutoComplete" />
                                        </p:autoComplete>
                                    </div>
                                </div>

                            </p:fieldset>

                            <div class="command">
                                <p:commandButton actionListener="#{ managerTransferenciaImovel.salvarAdquirente() }"
                                                 value="Salvar" icon="ui-icon-disk"
                                                 update="adquirenteTabView, :transferenciaImovelForm:adquirentedataTable"
                                                 process="@this, :adquirenteTabView:cadastrarAdquirenteTab" />
                                <p:commandButton process="@this" update=":adquirenteDialog"
                                                 actionListener="#{ managerTransferenciaImovel.instanciarAdquirenteCadastrar() }"
                                                 value="Cancelar" oncomplete="dialogAdquirente.hide()" icon="ui-icon-cancel" />
                            </div>

                        </p:tab>                        

                    </p:tabView>
                </p:dialog>                

            </form>

        </ui:define>
    </ui:composition>
</html>